﻿Imports System.Web.Mvc
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations

''' <summary>
''' Базовый класс для построения моделей справочников.
''' </summary>
''' <remarks></remarks>
Public MustInherit Class Dictionary
    ''' <summary>
    ''' Устанавливает или возвращает уникальный идентификатор.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Key()>
    <HiddenInput(DisplayValue:=False)>
    Public Property Id As Guid

    ''' <summary>
    ''' Устанавливает или возвращает название.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Required(ErrorMessageResourceName:="Required", ErrorMessageResourceType:=GetType(My.Resources.ErrorMessages))>
    <StringLength(255, ErrorMessageResourceName:="StringLength", ErrorMessageResourceType:=GetType(My.Resources.ErrorMessages))>
    <Display(Name:="Title", ResourceType:=GetType(My.Resources.DisplayNames), Order:=0)>
    Public Property Title As String

    ''' <summary>
    ''' Устанавливает или возвращает описание.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <DataType(DataType.MultilineText)>
    <Display(Name:="Description", ResourceType:=GetType(My.Resources.DisplayNames), Order:=1)>
    Public Property Description As String

    ''' <summary>
    ''' Устанавливает или возвращает указатель на черновик.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <UIHint("Draft")>
    <Display(Name:="Draft", ResourceType:=GetType(My.Resources.DisplayNames), Order:=80)>
    Public Property Draft As Boolean

    ''' <summary>
    ''' Устанавливает или возвращает порядок в списке.
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Required(ErrorMessageResourceName:="Required", ErrorMessageResourceType:=GetType(My.Resources.ErrorMessages))>
    <UIHint("Number")>
    <Display(Name:="Order", ResourceType:=GetType(My.Resources.DisplayNames), Order:=90)>
    Public Property Order As Integer = 0
End Class
